package com.aiwiown.face.domain.lite;

import com.aiwiown.face.ApiObject;
import com.aiwiown.face.domain.compare.FaceGenuineness;
import com.aiwiown.face.internal.mapping.ApiField;

/**
 * <pre>
 * 活体检测结果；如果用户中途中断了活体流程，则此字段不返回。
 * </pre>
 * LivenessResult
 * Date: 2020/4/26 0026
 * Time: 16:21
 *
 * @author tang.xiaosheng@qq.com
 */
public class LivenessResult extends ApiObject {
    private static final long serialVersionUID = -3049593849709485782L;

    /**
     * result：活体检测的结果，返回值分为两类：
     * PASS：活体检测通过；
     * FAIL：活体检测失败；
     * 注：
     * <p>
     * 当fmp_mode为"0"，该字段会考虑云端假脸攻击情况（即：face_genuineness字段）。当云端假脸攻击被检测出来时，会返回FAIL；
     * 当fmp_mode为"1"，该字段不会考虑云端假脸攻击情况。当云端假脸攻击被检测出来时，会返回PASS。不过，您依然可以根据自身的业务，并结合”face_genuineness“字段所返回的分数进行相关的业务判断。
     */
    @ApiField("result")
    private String result;

    /**
     * 活体检测结果的细节：
     */
    @ApiField("details")
    private LivenessResultDetails details;

    /**
     * 表示对假脸攻击的判定，它包含四组置信度和阈值，均为实数取值［0，1］区间。如果一个置信度大于其对应的阈值，则可以认为存在对应类型的假脸攻击。
     */
    @ApiField("face_genuineness")
    private FaceGenuineness faceGenuineness;

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }

    public LivenessResultDetails getDetails() {
        return details;
    }

    public void setDetails(LivenessResultDetails details) {
        this.details = details;
    }

    public FaceGenuineness getFaceGenuineness() {
        return faceGenuineness;
    }

    public void setFaceGenuineness(FaceGenuineness faceGenuineness) {
        this.faceGenuineness = faceGenuineness;
    }
}
